Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Google Calendar duplicates #8

Merged
merged 3 commits into from
Sep 16, 2024
Merged

fix: Google Calendar duplicates #8

merged 3 commits into from
Sep 16, 2024

Conversation

Myp3a
Copy link
Contributor

@Myp3a Myp3a commented Sep 13, 2024

Добрый день!

Я столкнулся с такой проблемой, что при синхронизации этого сервиса с Гугл Календарем у меня дублировались занятия.

Пример

caldupes

Предположительно, это происходит из-за получения занятия с новым UID, аналогичного уже существующему, но так как UID другой - они ставятся в одно и то же время.

Поэтому я добавил генерацию UID занятия на основе даты и времени занятия и его названия. Теперь при генерации календаря каждое занятие имеет фиксированный UID.

Проверено на своем аккаунте ИТМО. С версией из репозитория в течение суток происходит дублирование. С моими изменениями занятия остаются уникальными.

В идеале подождать еще с недельку, чтобы сервер с сервисом побывал в различных состояниях и гипотеза с UID подтвердилась. Я открываю МР заранее, чтобы была возможность обсудить проблему и взглянуть с разных сторон

Мини-дисклеймер: я не уверен в самой основе проблемы. Возможно, это связано с подтормаживанием сервера, и не проявляется на стабильных машинах. Возможно, это связано с чем-то другим, не с UID. Однако, установка UID решает проблему, дублирование не происходит

@iburakov
Copy link
Owner

Привет! Прежде всего, спасибо за твой вклад. Я уже выпустился и не использую этот проект, но он живёт благодаря вам, и это круто!

По существу - интересное поведение. Тоже жил в гугл календаре и не наблюдал такого раньше. На всякий уточню, верно ли я понял, что ты столкнулся с этим при импорте календаря "From URL"?
image

Если да, то дублирует ивенты именно гугл календарь при очередной синхронизации, выходит? То есть на уровне iCalendar аутпута дубликатов не существует, и это именно гугл разучился дедуплицировать ивенты без UID, даже если они совпадают по дате-времени-названию?

Можешь убедиться, пожалуйста, в том, что сырой iCalendar дубликатов не содержит? Может, подобные cредства будут кстати, но ещё лучше прямо поиском по текстовому файлу. Если и сырой iCalendar почему-то теперь содержит дубликаты, то вот корень беды, который тоже надо бы поправить)

В добавлении UID же в любом случае не вижу ничего плохого или потенциально ломающего. Пусть будет, если он в подобных ситуациях может помочь. Спасибо, что поделился!

@Myp3a
Copy link
Contributor Author

Myp3a commented Sep 15, 2024

Да, я импортирую календарь через "From URL".

На уровне сырого iCalendar дубликатов не замечал - внутри только одна копия занятия (проверял пару раз вручную).

В Outlook, например, проблема не воспроизводится - если я верно понимаю, то он сначала стирает все старые занятия, а потом загружает с нуля.

Copy link
Owner

@iburakov iburakov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Сейчас починю линтеры, а по существу проблем нет имхо

We don't version this project properly at the moment,
but something is better than nothing.
Copy link
Owner

@iburakov iburakov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Имхо можно мержить, когда сочтёшь нужным. Если хочешь потестить до конца недели, я не против) Если же ты не один с этой проблемой, впрочем, то имхо лучше мержить уже сейчас.

@Myp3a
Copy link
Contributor Author

Myp3a commented Sep 16, 2024

Проверил сервер в различных сценариях. Что с нагрузкой, что без, что в недоступности - дублирования не происходит, все ок. Можем мержить, спасибо!

@iburakov
Copy link
Owner

Отлично! Тебе спасибо)

@iburakov iburakov merged commit 361385a into iburakov:main Sep 16, 2024
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants